package com.itheima.d2_byte_stream.practice;

import java.io.*;

/**
 * 目标：使用字节流完成对文件的复制操作。
 */
public class FileCopy {
    public static void main(String[] args) throws Exception {
        // 需求：复制照片。

        //源文件
        File src = new File("day09file-io-app/img1/img1.jpeg");
        //目标文件
        File dest = new File("day09file-io-app/img2/img1.jpeg");

        //调用方法，完成拷贝
        copyFile(src,dest);
    }

    /**
     * 将源文件复制到目标文件中
     * @param src 源文件
     * @param dest 目标文件
     */
    public static void copyFile(File src, File dest) throws IOException {
        //完成文件拷贝
        //1、创建字节输入流，关联源文件，字节输入流关联目标文件
        FileInputStream fis = new FileInputStream(src);
        FileOutputStream fos = new FileOutputStream(dest);

        //2、完成输入流读取源文件到内存及输出流将内存的字节数据写出
        int len; //保存每次读取有效的字节个数
        byte[] buf = new byte[1024]; //每次可以拷贝1024个字节

        while ((len = fis.read(buf)) != -1) { //读取
            //写出
            fos.write(buf,0,len);
        }

        //3、资源的释放   先开后关
        fos.close();
        fis.close();
    }
}
